<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SSDP Help: D:/doxy/PublicAPI/ATDataCore/ATScene.h 源文件</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">SSDP Help<span id="projectnumber">&#160;2.04.01</span>
   </div>
   <div id="projectbrief">仅供测试</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.3 -->
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('../../',false,false,'search.php','搜索');
});
/* @license-end */
</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../dir_52a01df1794e5beec01860bdd05aea48.html">PublicAPI</a></li><li class="navelem"><a class="el" href="../../dir_4327875b5af0f0d2cd35b102dcf8c063.html">ATDataCore</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle"><div class="title">ATScene.h</div></div>
</div><!--header-->
<div class="contents">
<a href="../../de/da5/_a_t_data_core_2_a_t_scene_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span>ATDATACORE_TYPEDEFS_S(ProvenanceBlob);</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span>ATDATACORE_TYPEDEFS_S(ATSceneFillContextSource)</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="keyword">enum</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span>{</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span>    MAX_HASH_VARIETIES = 2,</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>};</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>BEGIN_ATEC_ATDATACORE_NAMESPACE</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="keyword">typedef</span> StatusInt(*SharedCellListFunc) (CallbackArgP arg, WCharCP ounitName, ATObjectCP);</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="keyword">typedef</span> StatusInt(*DBLinkFunc) (CallbackArgP arg, ObjectRefP);</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="keyword">typedef</span> xset&lt;ObjectRefP&gt; T_StdObjectRefSet;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">struct </span>DerivedObjectRange : <span class="keyword">private</span> ObjectRefAppData</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>{</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    <span class="keyword">friend</span> <span class="keyword">struct </span>PersistentObjectRef;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">protected</span>:</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    ScanRange   m_range;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    <span class="keyword">virtual</span> WCharCP _GetName()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> L<span class="stringliteral">&quot;&quot;</span>; }</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _OnCleanup(ObjectRefP host, <span class="keywordtype">bool</span> unloadingScene, HeapZone&amp; zone)<span class="keyword"> override </span>{ _OnRemoveDerivedRange(*(PersistentObjectRef*)host, unloadingScene, zone); }</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _OnRemoveDerivedRange(PersistentObjectRef <span class="keyword">const</span>&amp;, <span class="keywordtype">bool</span>, HeapZone&amp;) = 0;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _UpdateDerivedRange(PersistentObjectRef&amp;) = 0;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="keyword">protected</span>:</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>    ScanRangeCR GetDerivedRange() { <span class="keywordflow">return</span> m_range; }</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>    ATDATACORE_EXPORT <span class="keyword">static</span> <span class="keywordtype">void</span> OnDerivedRangeChangePre(PersistentObjectRef&amp;);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>    ATDATACORE_EXPORT <span class="keyword">static</span> <span class="keywordtype">void</span> OnDerivedRangeChangePost(PersistentObjectRef&amp;);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>};</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span><span class="keyword">struct  </span>DependentObj</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>{</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>    DependentObj*       m_next;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>    ObjectRefP          m_objRef;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>    <span class="keywordtype">void</span> init(DependentObj *next, ObjectRefP objRef)</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>    {</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>        m_next = next;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>        m_objRef = objRef;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>    }</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>    DependentObj* GetNext() { <span class="keywordflow">return</span> m_next; }</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span>    <span class="keywordtype">void</span>          SetNext(DependentObj* newNext) { m_next = newNext; }</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>    ObjectRefP   GetAtObject() { <span class="keywordflow">return</span> m_objRef; }</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>};</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span><span class="keyword">class           </span>CacheMemoryProtect</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>{</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>    <span class="keyword">static</span> <span class="keywordtype">void</span> ProtectRegion(<span class="keywordtype">byte</span>* ptr, <span class="keywordtype">int</span> size, <span class="keywordtype">bool</span> doProtect);</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>};</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span><span class="keyword">struct  </span>PersistentObjectRefVec : xvector&lt;PersistentObjectRefP&gt;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>{</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>    ATECStatus DropEntry(PersistentObjectRefP);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span>};</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span><span class="keyword">struct </span>PersistentObjectRef : <span class="keyword">public</span> ObjectRefBase</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>{</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>    <span class="keyword">private</span>: <span class="keyword">virtual</span> <span class="keywordtype">void</span> IAmAbstractClass() = 0;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>};</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span> </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span><span class="keyword">struct  </span>PersistentObjectRefBlock</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>{</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span>    <span class="keyword">private</span>: <span class="keyword">virtual</span> <span class="keywordtype">void</span> IAmAbstractClass() = 0;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>};</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span><span class="keyword">struct </span>PersistentObjectRefList;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span><span class="keyword">class </span>PersistentObjectRefListIterator : <span class="keyword">public</span> std::iterator&lt;std::forward_iterator_tag, PersistentObjectRefP const&gt;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>{</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>    PersistentObjectRefBlock*  m_currBlock;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>    UInt32                      m_currIndex;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>    PersistentObjectRefP       m_currObject;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>    <span class="keywordtype">bool</span>        CurrObjIsDirty();</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span>    StatusInt   SetFilePos(PersistentObjectRefList*, UInt32 newFilePos);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>    PersistentObjectRefListIterator(PersistentObjectRefP objRef);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span> </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>    PersistentObjectRefListIterator() { m_currBlock = NULL; m_currObject = NULL; }</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>    PersistentObjectRefP <span class="keyword">const</span>&amp; GetCurrentObjectRef()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_currObject; }</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>    ATDATACORE_EXPORT PersistentObjectRefP SetCurrentObjectRef(PersistentObjectRefP toElm);</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>    PersistentObjectRefBlock* CurrBlock() { <span class="keywordflow">return</span> m_currBlock; }</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>    PersistentObjectRefP GetNextDirtyObjectRef();</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>    PersistentObjectRefP GetFirstDirtyObjectRef(PersistentObjectRefList&amp; pList);</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>    ATDATACORE_EXPORT PersistentObjectRefP GetFirstObjectRef(PersistentObjectRefList&amp; elmList, <span class="keywordtype">bool</span> wantDeld = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>    ATDATACORE_EXPORT PersistentObjectRefP GetNextObjectRef(<span class="keywordtype">bool</span> wantDeld = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span>    ATDATACORE_EXPORT PersistentObjectRefListIterator&amp; operator++();</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>    ATDATACORE_EXPORT <span class="keywordtype">bool</span> operator!=(PersistentObjectRefListIterator <span class="keyword">const</span>&amp; rhs) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span>    <span class="keywordtype">bool</span> operator==(PersistentObjectRefListIterator <span class="keyword">const</span>&amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(*<span class="keyword">this</span> != rhs); }</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>    PersistentObjectRefP <span class="keyword">const</span>&amp; operator* ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_currObject; }</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span>};</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span><span class="keyword">struct   </span>PersistentObjectRefList</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span>{</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span>    <span class="keyword">private</span>: <span class="keyword">virtual</span> <span class="keywordtype">void</span> IAmAbstractClass() = 0;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span>    <span class="keyword">typedef</span> PersistentObjectRefListIterator  const_iterator;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span>    <span class="keyword">typedef</span> const_iterator iterator;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span>    ATDATACORE_EXPORT <span class="keywordtype">bool</span> IsEmpty() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span>    ATDATACORE_EXPORT const_iterator begin() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span>    ATDATACORE_EXPORT const_iterator end() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span>    ATDATACORE_EXPORT ATSceneP GetATSceneP() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span>};</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span><span class="keyword">class    </span>DictionaryObjectRefList : <span class="keyword">public</span> PersistentObjectRefList</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span>{</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span>    DEFINE_T_SUPER(PersistentObjectRefList)</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span>};</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span><span class="keyword">class    </span>GraphicObjectRefList : <span class="keyword">public</span> PersistentObjectRefList</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span>{</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span>};</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span><span class="keyword">class   </span>DBLinkCache</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span>{</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>    <span class="keyword">struct      </span>DBLinkEntry</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span>    {</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span>        PersistentObjectRefP    m_obj;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span>        ATWCharKey      m_key;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span> </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span>        ATWCharKey       GetKey()<span class="keyword"> const </span>{ <span class="keywordflow">return</span>   m_key; }</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span>        PersistentObjectRefP     GetValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span>  m_obj; }</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span>        PersistentObjectRefP     GetObj()<span class="keyword"> const </span>{ <span class="keywordflow">return</span>   m_obj; }</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno">  159</span>        <span class="keyword">static</span> ATWCharKey <span class="keyword">const</span>  GetMinKey() { <span class="keywordflow">return</span> MINKEY; }</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span>        <span class="keyword">static</span> ATWCharKey <span class="keyword">const</span>  GetMaxKey() { <span class="keywordflow">return</span> MAXKEY; }</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span>        DBLinkEntry() : m_key(NULL) {};</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span>        DBLinkEntry(PersistentObjectRefP obj, WCharCP key) : m_key(key) { m_obj = obj; }</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>    };</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span> </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>    <span class="keyword">typedef</span> KeyTree&lt;DBLinkEntry, ATWCharKey&gt;  T_DBLinkCache;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span>    HeapZone*               m_heapZone;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span>    T_DBLinkCache           m_dbLinks;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>    DBLinkCache(HeapZone* heapzone);</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span>    ~DBLinkCache();</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span> </div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span>    <span class="keywordtype">void</span>       Search(WCharCP first, WCharCP last, DBLinkFunc callback, CallbackArgP arg);</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>    <span class="keywordtype">void</span>       Empty();</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>    StatusInt  AddEntry(WCharCP key, PersistentObjectRefP);</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span>    StatusInt  RemoveEntry(WCharCP key, PersistentObjectRefP);</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span>};</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span> </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span><span class="keyword">class   </span>ATLevelUsage</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span>{</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span>    <span class="keyword">struct      </span>LevelUsageNode</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span>    {</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span>        UInt32              m_levelID;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span>        UInt32              m_usageCount;</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span> </div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span>        <span class="keyword">inline</span> UInt32  GetKey()<span class="keyword"> const </span>{ <span class="keywordflow">return</span>   m_levelID; }</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno">  188</span>        <span class="keyword">inline</span> UInt32  GetValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span>   m_usageCount; }</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span>        <span class="keyword">inline</span> <span class="keywordtype">void</span>    Increment() { ++m_usageCount; }</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span>        <span class="keyword">inline</span> <span class="keywordtype">void</span>    Decrement() { --m_usageCount; }</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno">  191</span> </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno">  192</span>        <span class="keyword">static</span> UInt32 <span class="keyword">const</span> GetMinKey() { <span class="keywordflow">return</span> 0; }</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno">  193</span>        <span class="keyword">static</span> UInt32 <span class="keyword">const</span> GetMaxKey() { <span class="keywordflow">return</span> UINT32_MAX; }</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span> </div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span>        LevelUsageNode(<span class="keywordtype">int</span> level)</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span>        {</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span>            m_levelID = level;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span>            m_usageCount = 1;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span>        }</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span>    };</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno">  203</span>    <span class="keyword">typedef</span> KeyTree&lt;LevelUsageNode, UInt32&gt;  T_LevelUsageTree;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>    UInt32                  m_changeCount;</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>    T_LevelUsageTree        m_tree;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span>    <span class="keywordtype">bool</span>                    m_dirty;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span>    <span class="keywordtype">bool</span>                    m_active;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span>    ATProjectP                m_file;</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span>    <span class="keywordtype">void</span>            MultilineLevelChange(MlineObj <span class="keyword">const</span>*, PersistentObjectRefP, <span class="keywordtype">bool</span> added, <span class="keywordtype">bool</span> loadingFromFile);</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span>    <span class="keywordtype">void</span>            MultilineStyleLevelChange(MlineStyleEntryObj <span class="keyword">const</span>* mLineStyle, PersistentObjectRefP objRef, <span class="keywordtype">bool</span> added, <span class="keywordtype">bool</span> loadingFromFile);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span> </div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span>    <span class="keywordtype">void</span>            IncrementCount(<span class="keywordtype">int</span> level, <span class="keywordtype">bool</span> loadingFromFile);</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span>    <span class="keywordtype">void</span>            DecrementCount(<span class="keywordtype">int</span> level);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>    <span class="keyword">static</span> <span class="keywordtype">int</span>      SetupBitMask(<span class="keyword">const</span> LevelUsageNode* node, CallbackArgP arg);</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span> </div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span>    ATLevelUsage(ATProjectP pFile);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno">  220</span> </div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span>    <span class="keywordtype">void</span> Empty();</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span>    UInt32 GetLevelChangeCount() { <span class="keywordflow">return</span> m_changeCount; }</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span>    <span class="keywordtype">bool</span> IsDirty() { <span class="keywordflow">return</span> m_dirty; }</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span>    <span class="keywordtype">void</span> SetDirty();</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>    <span class="keywordtype">void</span> ClearDirty() { m_dirty = <span class="keyword">false</span>; }</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>    <span class="keywordtype">void</span> Deactivate() { m_active = <span class="keyword">false</span>; }</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span>    <span class="keywordtype">void</span> Activate() { m_active = <span class="keyword">true</span>; }</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span>    <span class="keywordtype">void</span> ObjectAdded(ATObjectCP newEl, <span class="keywordtype">bool</span> loadingFromFile);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>    <span class="keywordtype">void</span> ObjectAdded(PersistentObjectRefP oldEl, <span class="keywordtype">bool</span> loadingFromFile);</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span>    <span class="keywordtype">void</span> ObjectRemoved(PersistentObjectRefP oldEl);</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span>    <span class="keywordtype">void</span> ObjectChanged(PersistentObjectRefP oldEl, ATObjectCP newEl);</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span>    ATDATACORE_EXPORT <span class="keywordtype">void</span> LevelChange(<span class="keywordtype">int</span> level, <span class="keywordtype">bool</span> added, <span class="keywordtype">bool</span> loadingFromFile);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno">  234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span>    ATDATACORE_EXPORT UInt32   GetUsageCount(<span class="keywordtype">int</span> level);</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>    ATDATACORE_EXPORT BitMaskP GetBitMask();</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span>};</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span> </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span><span class="keyword">struct </span>ProvenanceBlob : <span class="keyword">public</span> RefCountedBase</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span>{</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span>    <span class="keyword">friend</span> <span class="keyword">struct </span>ATAEFileIO;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span>    <span class="keywordtype">byte</span>*   m_data;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span>    <span class="keywordtype">size_t</span>  m_size;</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span> </div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span>    ProvenanceBlob(<span class="keywordtype">byte</span>* data, <span class="keywordtype">size_t</span> size) : m_data(data), m_size(size) {}</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno">  247</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span>    ATDATACORE_EXPORT ~ProvenanceBlob();</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno">  249</span> </div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno">  250</span>    <span class="keywordtype">size_t</span>      GetSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_size; }</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span>    <span class="keywordtype">byte</span> <span class="keyword">const</span>* GetData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_data; }</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno">  252</span>};</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno">  253</span> </div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span><span class="keyword">typedef</span> RefCountedPtr&lt;ProvenanceBlob&gt; ProvenanceBlobPtr;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span> </div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno">  256</span><span class="keyword">enum</span> ThumbnailFormat</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span>{</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno">  258</span>    THUMBNAILFORMAT_ColorTable255RGBA32 = 1</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno">  259</span>};</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno">  260</span> </div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno">  261</span><span class="keyword">enum</span></div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno">  262</span>{</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno">  263</span>    MAX_MODEL_THUMBNAIL_NAME_LENGTH = 31,</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno">  264</span>};</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno">  265</span> </div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno">  266</span><span class="keyword">struct </span>SceneThumbnail : <span class="keyword">public</span> RefCountedBase</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno">  267</span>{</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno">  268</span>    <span class="keyword">friend</span> <span class="keyword">struct </span>ATAEFileIO;</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno">  269</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno">  270</span>    ThumbnailFormat m_format;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno">  271</span>    UInt            m_width;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno">  272</span>    UInt            m_height;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno">  273</span>    <span class="keywordtype">size_t</span>          m_bufferSize;</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno">  274</span>    <span class="keywordtype">byte</span>*           m_buffer;</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span>    WString         m_name;</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno">  276</span> </div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno">  277</span>    SceneThumbnail(WCharCP name, <span class="keywordtype">size_t</span> bufferSize, <span class="keywordtype">byte</span>* imgBuffer, ThumbnailFormat format, UInt width, UInt height);</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno">  278</span> </div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno">  279</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span>    ~SceneThumbnail();</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno">  281</span> </div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno">  282</span>    WCharCP         GetName()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_name.GetWCharCP(); }</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span>    ThumbnailFormat GetFormat()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_format; }</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno">  284</span>    UInt            GetHeight()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_height; }</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno">  285</span>    UInt            GetWidth()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_width; }</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno">  286</span>    <span class="keywordtype">size_t</span>          GetBufferSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_bufferSize; }</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno">  287</span>    <span class="keywordtype">byte</span> <span class="keyword">const</span>*     GetImageBuffer()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_buffer; }</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno">  288</span> </div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno">  289</span>    ATDATACORE_EXPORT <span class="keyword">static</span> RefCountedPtr&lt;SceneThumbnail&gt; Create(WCharCP name, <span class="keywordtype">size_t</span> bufferSize, <span class="keywordtype">byte</span>* imgBuffer, ThumbnailFormat format, UInt width, UInt height);</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno">  290</span>};</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno">  291</span> </div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno">  292</span><span class="keyword">typedef</span> RefCountedPtr&lt;SceneThumbnail&gt; SceneThumbnailPtr;</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno">  293</span> </div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno">  294</span><span class="keyword">struct </span>SceneThumbnailIterator</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno">  295</span>{</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno">  296</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno">  297</span>    <span class="keyword">typedef</span> xvector&lt;WCharP&gt; T_ATWCharPVector;</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno">  298</span>    T_ATWCharPVector            m_names;</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno">  299</span>    T_ATWCharPVector::iterator  m_iter;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno">  300</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span>    <span class="keywordtype">bool</span> IsValid()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_iter != m_names.end(); }</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span>    ATDATACORE_EXPORT SceneThumbnailIterator(ATSceneCR);</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno">  303</span>    ATDATACORE_EXPORT ~SceneThumbnailIterator();</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno">  304</span>    ATDATACORE_EXPORT <span class="keywordtype">void</span> GetName(WStringR) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno">  305</span>    ATDATACORE_EXPORT <span class="keywordtype">bool</span> ToNext();</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno">  306</span>};</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno">  307</span> </div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno">  308</span><span class="keyword">class </span>MissingEnabler</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno">  309</span>{</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno">  310</span>    <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code hl_struct" href="../../d9/ddc/struct_a_t_scene.html">ATScene</a>;</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno">  311</span> </div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno">  313</span>    WString         m_appName;</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span>    WString         m_vendorInfo;</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span>    UInt32          m_nonGraphicsCount;</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span>    UInt32          m_graphicsCount;</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span>    UInt32          m_proxyGraphicsCount;</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno">  318</span> </div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span>    MissingEnabler(WCharCP appName, WCharCP vendorInfo, <span class="keywordtype">bool</span> isGraphics, <span class="keywordtype">bool</span> foundProxyGraph);</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span>    <span class="keywordtype">void</span>            IncrementCount(<span class="keywordtype">bool</span> graphObject, <span class="keywordtype">bool</span> foundProxyGraph);</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span> </div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno">  323</span>    UInt32          GetNonGraphicsCount() { <span class="keywordflow">return</span> m_nonGraphicsCount; }</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno">  324</span>    UInt32          GetGraphicsCount() { <span class="keywordflow">return</span> m_graphicsCount; }</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno">  325</span>    UInt32          GetProxyGraphicsCount() { <span class="keywordflow">return</span> m_proxyGraphicsCount; }</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno">  326</span>    WStringCR       GetApplicationName() { <span class="keywordflow">return</span> m_appName; }</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno">  327</span>    WStringCR       GetVendorInfo() { <span class="keywordflow">return</span> m_vendorInfo; }</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno">  328</span>};</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno">  329</span> </div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno">  330</span><span class="keyword">typedef</span> xmap&lt;WString, MissingEnabler*&gt; T_MissingEnablerMap;</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno">  331</span> </div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno">  332</span><span class="keyword">class </span>MissingEnablerMap : <span class="keyword">public</span> T_MissingEnablerMap</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno">  333</span>{</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno">  334</span>    <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code hl_struct" href="../../d9/ddc/struct_a_t_scene.html">ATScene</a>;</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span><span class="keyword">protected</span>:</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno">  336</span>    ~MissingEnablerMap();</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno">  337</span>};</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno">  338</span> </div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span><span class="keyword">struct      </span>ATSceneAppData</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span>{</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno">  341</span>    <span class="keyword">virtual</span> ~ATSceneAppData() {}</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno">  342</span> </div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno">  343</span>    <span class="keyword">struct </span>Key : AppDataKey {};</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno">  344</span> </div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno">  345</span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _OnCleanup(ATSceneR host) = 0;</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno">  346</span> </div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno">  347</span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _OnFilled(ATSceneR host) {}</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno">  348</span> </div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno">  349</span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> _OnEmpty(ATSceneR host) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno">  350</span> </div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno">  351</span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> _OnEmptied(ATSceneR host) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno">  352</span> </div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno">  353</span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _OnSceneDelete(ATSceneR host) {}</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno">  354</span> </div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno">  355</span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _OnSceneUnDelete(ATSceneR host) {}</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno">  356</span> </div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _OnObjectAdded(ATSceneR host, PersistentObjectRef&amp; obj, <span class="keywordtype">bool</span> isGraphList) { ; }</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno">  358</span> </div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno">  359</span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _OnSaveSceneProperties(ATSceneR host, SceneInfoCR original) { ; }</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno">  360</span> </div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno">  361</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno">  362</span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> _Dummy1(<span class="keywordtype">void</span>*) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno">  363</span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> _Dummy2(<span class="keywordtype">void</span>*) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno">  364</span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> _Dummy3(<span class="keywordtype">void</span>*) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno">  365</span>};</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno">  366</span> </div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno">  367</span><span class="keyword">struct </span>ReferencedByArray : xvector&lt;ATAttachmentP&gt;</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno">  368</span>{</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno">  369</span>};</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno">  370</span> </div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno">  371</span><span class="keyword">enum class</span> GeoAttachmentHandling</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno">  372</span>{</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno">  373</span>    Default = 0,</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno">  374</span>    DoNotReproject = 1,</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno">  375</span>    AcceptUnprojected = 2,</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno">  376</span>};</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno">  377</span> </div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html">  384</a></span><span class="keyword">struct </span><a class="code hl_struct" href="../../d9/ddc/struct_a_t_scene.html">ATScene</a> : <a class="code hl_struct" href="../../de/d1c/struct_a_t_scene_ref.html">ATSceneRef</a></div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno">  385</span>{</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno">  386</span><span class="keyword">private</span>: <span class="keyword">virtual</span> <span class="keywordtype">void</span> IAmAbstractClass() = 0;</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno">  387</span> </div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno">  388</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a2a7bc433651f8fb895f1aaad2328b97b">  399</a></span>    ATDATACORE_EXPORT ATScenesStatus <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a2a7bc433651f8fb895f1aaad2328b97b">SetSceneInfo</a>(SceneInfoR sceneInfo);</div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno">  400</span> </div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a952d14c81b1cd7a227013cc453262f95">  411</a></span>    ATDATACORE_EXPORT StatusInt <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a952d14c81b1cd7a227013cc453262f95">FillSections</a>(ATScenesSections sectionsToFill, ATSceneFillContextP fillCntxt = NULL);</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno">  412</span> </div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a5048f15152777d62a248cc5f43d732e6">  423</a></span>    ATDATACORE_EXPORT <span class="keywordtype">void</span> <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a5048f15152777d62a248cc5f43d732e6">Empty</a>(<span class="keywordtype">bool</span> evenIfDirty = <span class="keyword">false</span>, <span class="keywordtype">bool</span> andFree = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno">  424</span> </div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#addfca2d15e64e988b3300f63a77cb05f">  434</a></span>    ATDATACORE_EXPORT ATScenesSections <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#addfca2d15e64e988b3300f63a77cb05f">IsFilled</a>(ATScenesSections sections) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno">  435</span> </div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a01a206769b83b2f59a07570f3b87e30f">  446</a></span>    ATDATACORE_EXPORT UInt32 <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a01a206769b83b2f59a07570f3b87e30f">GetObjectCount</a>(ATScenesSections sections);</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno">  447</span> </div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a34c238e93579e0dcaf9cb51249415149">  456</a></span>    ATDATACORE_EXPORT FileLevelCacheR <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a34c238e93579e0dcaf9cb51249415149">GetFileLevelCacheR</a>();</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno">  457</span> </div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a7d26b4b92416771db0255c5b94d12094">  466</a></span>    ATDATACORE_EXPORT FileLevelCacheCR <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a7d26b4b92416771db0255c5b94d12094">GetFileLevelCache</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno">  467</span> </div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a0f3e1c4623c30790c4e0d74b10e4f7bd">  476</a></span>    ATDATACORE_EXPORT <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a0f3e1c4623c30790c4e0d74b10e4f7bd">IsDictionaryScene</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno">  477</span> </div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a915bf2e0ce37ee6a70a7806504fcb8f9">  486</a></span>    ATDATACORE_EXPORT PersistentObjectRefList* <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a915bf2e0ce37ee6a70a7806504fcb8f9">GetControlObjectsP</a>();</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno">  487</span> </div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a2adcfcc725aeda509029038571d7ca60">  496</a></span>    ATDATACORE_EXPORT PersistentObjectRefList* <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a2adcfcc725aeda509029038571d7ca60">GetGraphicObjectsP</a>();</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno">  497</span> </div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno">  498</span>    ATDATACORE_EXPORT <span class="keyword">inline</span> <span class="keywordtype">int</span> AddRef();</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno">  499</span> </div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno">  500</span>    ATDATACORE_EXPORT <span class="keyword">inline</span> <span class="keywordtype">int</span> Release();</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno">  501</span> </div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno">  502</span>    <span class="keyword">struct </span>ObjectRefIterator : std::iterator&lt;std::forward_iterator_tag, PersistentObjectRefP const&gt;</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno">  503</span>    {</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno">  504</span>    <span class="keyword">private</span>:</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno">  505</span> </div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno">  506</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno">  507</span> </div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno">  508</span>        <span class="keyword">enum</span> IteratorState { ITERATING_DictionaryObjects = 0, ITERATING_ControlElms = 1, ITERATING_GraphicElms = 2, ITERATING_HitEOF = 3 };</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno">  509</span> </div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno">  510</span>    <span class="keyword">private</span>:</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno">  511</span>        PersistentObjectRefListIterator m_iter;</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno">  512</span>        ATSceneP                       m_scene;</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno">  513</span>        ATScenesSections                m_firstSection;</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno">  514</span>        IteratorState                   m_state;</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno">  515</span> </div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno">  516</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno">  517</span>        ObjectRefIterator() { m_scene = NULL; m_state = ITERATING_DictionaryObjects; m_firstSection = ATScenesSections::Dictionary; }</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno">  518</span>        ATDATACORE_EXPORT ObjectRefIterator(<a class="code hl_struct" href="../../d9/ddc/struct_a_t_scene.html">ATScene</a>* pScene);</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno">  519</span>        ATDATACORE_EXPORT ObjectRefIterator(ObjectRefIterator *source);</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno">  520</span> </div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno">  521</span>        PersistentObjectRefBlock* CurrBlock() { <span class="keywordflow">return</span> m_iter.CurrBlock(); }</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno">  522</span>        PersistentObjectRefP <span class="keyword">const</span>&amp; GetCurrentObjectRef() { <span class="keywordflow">return</span> m_iter.GetCurrentObjectRef(); }</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno">  523</span>        IteratorState         GetState() { <span class="keywordflow">return</span> m_state; }</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno">  524</span>        ATSceneP             GetScene() { <span class="keywordflow">return</span> m_scene; }</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno">  525</span> </div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno">  526</span>        ATDATACORE_EXPORT PersistentObjectRefP    GetFirstObjectRef(ATSceneP pScene, <span class="keywordtype">bool</span> wantDeld = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno">  527</span>        PersistentObjectRefP    GetFirstObjectRef() { <span class="keywordflow">return</span> GetFirstObjectRef(m_scene, <span class="keyword">false</span>); }</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno">  528</span>        ATDATACORE_EXPORT PersistentObjectRefP    GetFirstDirtyObjectRef();</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno">  529</span>        ATDATACORE_EXPORT PersistentObjectRefP    GetNextObjectRef(<span class="keywordtype">bool</span> wantDeld = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno">  530</span>        ATDATACORE_EXPORT PersistentObjectRefP    GetNextDirtyObjectRef();</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno">  531</span>        ATDATACORE_EXPORT PersistentObjectRefP    SetAtEOF();</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno">  532</span>        ATDATACORE_EXPORT StatusInt                SetFilePos(UInt32 newFilePos, <span class="keywordtype">bool</span> skipDeld = <span class="keyword">true</span>);</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno">  533</span>        <span class="keywordtype">void</span>                     SetScene(ATSceneP <a class="code hl_struct" href="../../d9/ddc/struct_a_t_scene.html">ATScene</a>, ATScenesSections firstSection) { m_scene = <a class="code hl_struct" href="../../d9/ddc/struct_a_t_scene.html">ATScene</a>; m_iter.SetCurrentObjectRef(NULL); m_firstSection = firstSection; }</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno">  534</span>        ATDATACORE_EXPORT <span class="keywordtype">bool</span>                     SetCurrentElm(PersistentObjectRefP toElm);</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno">  535</span>        <span class="keywordtype">bool</span>                                        HitEOF()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_state == ITERATING_HitEOF; }</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno">  536</span> </div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno">  537</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno">  538</span>        ATDATACORE_EXPORT ObjectRefIterator&amp;      operator++();</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno">  539</span>        ATDATACORE_EXPORT <span class="keywordtype">bool</span>                     operator!=(ObjectRefIterator <span class="keyword">const</span>&amp; rhs) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno">  540</span>        <span class="keywordtype">bool</span>                     operator==(ObjectRefIterator <span class="keyword">const</span>&amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(*<span class="keyword">this</span> != rhs); }</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno">  541</span> </div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno">  542</span>        ATDATACORE_EXPORT PersistentObjectRefP <span class="keyword">const</span>&amp; operator* () <span class="keyword">const</span>;</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno">  543</span>    };</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno">  544</span> </div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno">  545</span>    <span class="keyword">struct      </span>ObjectsCollection</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno">  546</span>    {</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno">  547</span>    <span class="keyword">private</span>:</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno">  548</span>        <span class="keyword">friend</span> <span class="keyword">struct  </span><a class="code hl_struct" href="../../d9/ddc/struct_a_t_scene.html">ATScene</a>;</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno">  549</span>        <a class="code hl_struct" href="../../d9/ddc/struct_a_t_scene.html">ATScene</a> <span class="keyword">const</span>&amp; m_scene;</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno">  550</span>        ObjectsCollection(<a class="code hl_struct" href="../../d9/ddc/struct_a_t_scene.html">ATScene</a> <span class="keyword">const</span>&amp; c) : m_scene(c) {}</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno">  551</span> </div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno">  552</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno">  553</span>        <span class="keyword">typedef</span> ObjectRefIterator const_iterator;</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno">  554</span>        <span class="keyword">typedef</span> const_iterator iterator;</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno">  555</span> </div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno">  556</span>        ATDATACORE_EXPORT const_iterator begin() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno">  557</span>        ATDATACORE_EXPORT const_iterator end() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno">  558</span> </div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno">  559</span>    };</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno">  560</span> </div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#aea871fee5f4b2b242ecc117338ee05c4">  569</a></span>    ATDATACORE_EXPORT ObjectsCollection <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#aea871fee5f4b2b242ecc117338ee05c4">GetObjectsCollection</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno">  570</span> </div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a72392187250653c614110408561f5e9b">  580</a></span>    ATDATACORE_EXPORT PersistentObjectRefP <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a72392187250653c614110408561f5e9b">FindObjectByID</a>(ObjectId <span class="keywordtype">id</span>) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno">  581</span> </div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a7164e826c4574d154b73b97e60d0e810">  590</a></span>    ATDATACORE_EXPORT <span class="keyword">inline</span> SceneID <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a7164e826c4574d154b73b97e60d0e810">GetSceneId</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno">  591</span> </div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a5f1795090ba3f9d2641359190aa76d9e">  600</a></span>    ATDATACORE_EXPORT SceneInfoCR <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a5f1795090ba3f9d2641359190aa76d9e">GetSceneInfo</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno">  601</span> </div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno">  602</span><span class="keyword">protected</span>:</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno">  603</span>    ATDATACORE_EXPORT SceneInfoR GetSceneInfoR();</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno">  604</span> </div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno">  605</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a375c84754e6f815ca707ba8f30982ca5">  615</a></span>    ATDATACORE_EXPORT StatusInt <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a375c84754e6f815ca707ba8f30982ca5">SaveSceneInfo</a>(<span class="keywordtype">bool</span> bSaveSets = <span class="keyword">true</span>);</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno">  616</span> </div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#ab779077aadbff85baa82000101d8275b">  625</a></span>    ATDATACORE_EXPORT StatusInt <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#ab779077aadbff85baa82000101d8275b">SaveSceneSettings</a>();</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno">  626</span> </div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a723b94f90c39b03a9c5206baed82466b">  635</a></span>    ATDATACORE_EXPORT WCharCP <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a723b94f90c39b03a9c5206baed82466b">GetSceneName</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno">  636</span> </div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#aa54a9f34b4f867c60f6debbac60011e0">  645</a></span>    ATDATACORE_EXPORT <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#aa54a9f34b4f867c60f6debbac60011e0">IsReadOnly</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno">  646</span> </div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#a573f0e53e44f9cf2443d44d0f67756a7">  655</a></span>    ATDATACORE_EXPORT ATProjectP <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#a573f0e53e44f9cf2443d44d0f67756a7">GetATProjectP</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno">  656</span> </div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"><a class="line" href="../../d9/ddc/struct_a_t_scene.html#aa0db6fc3e141dc0b4db55a1f182783c2">  666</a></span>    ATDATACORE_EXPORT StatusInt <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#aa0db6fc3e141dc0b4db55a1f182783c2">GetRange</a>(ScanRangeR range);</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno">  667</span>    ATDATACORE_EXPORT StatusInt <a class="code hl_function" href="../../d9/ddc/struct_a_t_scene.html#aa0db6fc3e141dc0b4db55a1f182783c2">GetRange</a>(XRange3dR range);</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno">  668</span> </div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno">  669</span>    ATDATACORE_EXPORT StatusInt AddAppData(ATSceneAppData::Key <span class="keyword">const</span>&amp; key, ATSceneAppData* appData);</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno">  670</span> </div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno">  671</span>    ATDATACORE_EXPORT StatusInt DropAppData(ATSceneAppData::Key <span class="keyword">const</span>&amp; key);</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno">  672</span> </div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno">  673</span>    ATDATACORE_EXPORT ATSceneAppData* FindAppData(ATSceneAppData::Key <span class="keyword">const</span>&amp; key) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno">  674</span> </div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno">  675</span>    ATDATACORE_EXPORT ReferencedByArrayCR GetReferencedBy();</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno">  676</span> </div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno">  677</span>    ATDATACORE_EXPORT UInt32 GetControlObjStart();</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno">  678</span> </div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno">  679</span>    ATDATACORE_EXPORT UInt32 GetGraphicObjStart();</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno">  680</span> </div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno">  681</span>    ATDATACORE_EXPORT PersistentObjectRefP    FindByFilePos(UInt32 filePos, <span class="keywordtype">bool</span> skipDeld);</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno">  682</span>    ATDATACORE_EXPORT UInt32                   GetEOF(ATScenesSections section);</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno">  683</span>};</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno">  684</span> </div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno">  685</span><span class="keyword">enum</span> ATScenesDirtyFlags</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno">  686</span>{</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno">  687</span>    ATSCENES_DIRTY_NONE = 0x0000,</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno">  688</span>    ATSCENES_DIRTY_NEW = 0x0001,</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno">  689</span>    ATSCENES_DIRTY_DELETED = 0x0002,</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno">  690</span>    ATSCENES_DIRTY_CHANGED = 0x0004,</div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno">  691</span>    ATSCENES_DIRTY_ELEMDELETED = 0x0008</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno">  692</span>};</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno">  693</span> </div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno">  694</span><span class="keyword">enum</span>  ATScenesTransformDscrStatus</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno">  695</span>{</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno">  696</span>    ATSCENES_FILL_DSCR_Unchanged = 0,</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno">  697</span>    ATSCENES_FILL_DSCR_SkipThis = 1,</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno">  698</span>    ATSCENES_FILL_DSCR_Replaced = 2,</div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno">  699</span>    ATSCENES_FILL_DSCR_Modified = 3,</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno">  700</span>    ATSCENES_FILL_Discontinue = 4,</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno">  701</span>};</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno">  702</span> </div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno">  703</span><span class="keyword">struct </span>ATSceneFillContext</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno">  704</span>{</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno">  705</span>    ATAttachmentP  m_ATAttachment;</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno">  706</span> </div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno">  707</span>    ATSceneFillContext(ATAttachmentP <a class="code hl_struct" href="../../df/d53/struct_a_t_attachment.html">ATAttachment</a>) { m_ATAttachment = <a class="code hl_struct" href="../../df/d53/struct_a_t_attachment.html">ATAttachment</a>; }</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno">  708</span>    ATAttachmentP GetFillATAttachment() { <span class="keywordflow">return</span> m_ATAttachment; }</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno">  709</span>};</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno">  710</span> </div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno">  711</span>END_ATEC_ATDATACORE_NAMESPACE</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno">  712</span> </div>
<div class="ttc" id="astruct_a_t_attachment_html"><div class="ttname"><a href="../../df/d53/struct_a_t_attachment.html">ATAttachment</a></div><div class="ttdoc">参照对象</div><div class="ttdef"><b>Definition:</b> ATAttachment.h:58</div></div>
<div class="ttc" id="astruct_a_t_scene_html"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html">ATScene</a></div><div class="ttdoc">场景对象</div><div class="ttdef"><b>Definition:</b> ATScene.h:385</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a01a206769b83b2f59a07570f3b87e30f"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a01a206769b83b2f59a07570f3b87e30f">ATScene::GetObjectCount</a></div><div class="ttdeci">ATDATACORE_EXPORT UInt32 GetObjectCount(ATScenesSections sections)</div><div class="ttdoc">获取场景中元素的数量</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a0f3e1c4623c30790c4e0d74b10e4f7bd"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a0f3e1c4623c30790c4e0d74b10e4f7bd">ATScene::IsDictionaryScene</a></div><div class="ttdeci">ATDATACORE_EXPORT bool IsDictionaryScene() const</div><div class="ttdoc">查询当前场景是否是一个字典场景</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a2a7bc433651f8fb895f1aaad2328b97b"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a2a7bc433651f8fb895f1aaad2328b97b">ATScene::SetSceneInfo</a></div><div class="ttdeci">ATDATACORE_EXPORT ATScenesStatus SetSceneInfo(SceneInfoR sceneInfo)</div><div class="ttdoc">设置场景信息</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a2adcfcc725aeda509029038571d7ca60"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a2adcfcc725aeda509029038571d7ca60">ATScene::GetGraphicObjectsP</a></div><div class="ttdeci">ATDATACORE_EXPORT PersistentObjectRefList * GetGraphicObjectsP()</div><div class="ttdoc">获取场景中的图形元素列表</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a34c238e93579e0dcaf9cb51249415149"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a34c238e93579e0dcaf9cb51249415149">ATScene::GetFileLevelCacheR</a></div><div class="ttdeci">ATDATACORE_EXPORT FileLevelCacheR GetFileLevelCacheR()</div><div class="ttdoc">获取场景所属的文件的图层缓存</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a375c84754e6f815ca707ba8f30982ca5"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a375c84754e6f815ca707ba8f30982ca5">ATScene::SaveSceneInfo</a></div><div class="ttdeci">ATDATACORE_EXPORT StatusInt SaveSceneInfo(bool bSaveSets=true)</div><div class="ttdoc">保存该场景的场景信息</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a5048f15152777d62a248cc5f43d732e6"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a5048f15152777d62a248cc5f43d732e6">ATScene::Empty</a></div><div class="ttdeci">ATDATACORE_EXPORT void Empty(bool evenIfDirty=false, bool andFree=false)</div><div class="ttdoc">清空该场景的内容</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a573f0e53e44f9cf2443d44d0f67756a7"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a573f0e53e44f9cf2443d44d0f67756a7">ATScene::GetATProjectP</a></div><div class="ttdeci">ATDATACORE_EXPORT ATProjectP GetATProjectP() const</div><div class="ttdoc">获取该场景所属的文件</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a5f1795090ba3f9d2641359190aa76d9e"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a5f1795090ba3f9d2641359190aa76d9e">ATScene::GetSceneInfo</a></div><div class="ttdeci">ATDATACORE_EXPORT SceneInfoCR GetSceneInfo() const</div><div class="ttdoc">获取场景信息</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a7164e826c4574d154b73b97e60d0e810"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a7164e826c4574d154b73b97e60d0e810">ATScene::GetSceneId</a></div><div class="ttdeci">ATDATACORE_EXPORT SceneID GetSceneId() const</div><div class="ttdoc">获取场景ID</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a72392187250653c614110408561f5e9b"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a72392187250653c614110408561f5e9b">ATScene::FindObjectByID</a></div><div class="ttdeci">ATDATACORE_EXPORT PersistentObjectRefP FindObjectByID(ObjectId id) const</div><div class="ttdoc">根据元素ID查找元素</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a723b94f90c39b03a9c5206baed82466b"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a723b94f90c39b03a9c5206baed82466b">ATScene::GetSceneName</a></div><div class="ttdeci">ATDATACORE_EXPORT WCharCP GetSceneName() const</div><div class="ttdoc">获取场景名称</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a7d26b4b92416771db0255c5b94d12094"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a7d26b4b92416771db0255c5b94d12094">ATScene::GetFileLevelCache</a></div><div class="ttdeci">ATDATACORE_EXPORT FileLevelCacheCR GetFileLevelCache() const</div><div class="ttdoc">获取场景所属的文件的图层缓存</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a915bf2e0ce37ee6a70a7806504fcb8f9"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a915bf2e0ce37ee6a70a7806504fcb8f9">ATScene::GetControlObjectsP</a></div><div class="ttdeci">ATDATACORE_EXPORT PersistentObjectRefList * GetControlObjectsP()</div><div class="ttdoc">获取场景中的控制元素列表</div></div>
<div class="ttc" id="astruct_a_t_scene_html_a952d14c81b1cd7a227013cc453262f95"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#a952d14c81b1cd7a227013cc453262f95">ATScene::FillSections</a></div><div class="ttdeci">ATDATACORE_EXPORT StatusInt FillSections(ATScenesSections sectionsToFill, ATSceneFillContextP fillCntxt=NULL)</div><div class="ttdoc">从物理文件读取元素到该场景中</div></div>
<div class="ttc" id="astruct_a_t_scene_html_aa0db6fc3e141dc0b4db55a1f182783c2"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#aa0db6fc3e141dc0b4db55a1f182783c2">ATScene::GetRange</a></div><div class="ttdeci">ATDATACORE_EXPORT StatusInt GetRange(ScanRangeR range)</div><div class="ttdoc">获取场景中所有元素的空间范围</div></div>
<div class="ttc" id="astruct_a_t_scene_html_aa54a9f34b4f867c60f6debbac60011e0"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#aa54a9f34b4f867c60f6debbac60011e0">ATScene::IsReadOnly</a></div><div class="ttdeci">ATDATACORE_EXPORT bool IsReadOnly() const</div><div class="ttdoc">查询该场景是否是只读的</div></div>
<div class="ttc" id="astruct_a_t_scene_html_ab779077aadbff85baa82000101d8275b"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#ab779077aadbff85baa82000101d8275b">ATScene::SaveSceneSettings</a></div><div class="ttdeci">ATDATACORE_EXPORT StatusInt SaveSceneSettings()</div><div class="ttdoc">保存该场景场景信息的设置</div></div>
<div class="ttc" id="astruct_a_t_scene_html_addfca2d15e64e988b3300f63a77cb05f"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#addfca2d15e64e988b3300f63a77cb05f">ATScene::IsFilled</a></div><div class="ttdeci">ATDATACORE_EXPORT ATScenesSections IsFilled(ATScenesSections sections) const</div><div class="ttdoc">查询该场景是否已被填充</div></div>
<div class="ttc" id="astruct_a_t_scene_html_aea871fee5f4b2b242ecc117338ee05c4"><div class="ttname"><a href="../../d9/ddc/struct_a_t_scene.html#aea871fee5f4b2b242ecc117338ee05c4">ATScene::GetObjectsCollection</a></div><div class="ttdeci">ATDATACORE_EXPORT ObjectsCollection GetObjectsCollection() const</div><div class="ttdoc">获取场景中的所有元素集合</div></div>
<div class="ttc" id="astruct_a_t_scene_ref_html"><div class="ttname"><a href="../../de/d1c/struct_a_t_scene_ref.html">ATSceneRef</a></div><div class="ttdoc">场景引用对象</div><div class="ttdef"><b>Definition:</b> ATSceneRef.h:187</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
